/*
 * XmlGrammar.h
 *
 */

#ifndef XMLGRAMMAR_H_
#define XMLGRAMMAR_H_

#include <iostream>
#include <fstream>
#include <list>
#include <string>
#include <map>

#include "ParserUtils.h"

using namespace std;

class XmlGrammar {
public:
	// Constructores:
	XmlGrammar(void);
	virtual ~XmlGrammar();

	/* 
	 * Devuelve el mapa con las reglas a aplicar para los cambios de estado.
	 */
	map<Status,map<char,Status>> & getGrammarMap(void);

	/*
	 * Devuelve una cadena que contiene los simbolos que utiliza la gramatica.
	 */
	string & getGrammarSymbols(void);

	bool isSymbol(char c);

private:
	string GrammarSymbols;
	map<Status,map<char,Status>> GrammarMap;
};

#endif /* XMLGRAMMAR_H_ */
